Principles and Project Management

 

 

Assignment:

 

For the first week we have to  build web page, git tutorial and  talk about my final project.

 

About me:


 

I am Naser Al Abuljader and I graduated from Kuwait University of Engineering and I worked in many different fields such as health and safety and operation in Ministry of Electricity and Water. Currently, I am working in the oil sector in Kuwait Gulf Oil Company.

 

 

Project Management:

 

I at start I was so confused about Fablab-Kuwait when they told me I have to start building my own web page and in my head I said it is impossible with the given timeline or even impossible for me. The local instructors were too helpful and provide us with the proper tools and equipments.

The first thing I noticed about building a web-page is that the world of internet already offers enough tools for any beginner know how to build his or her own web page.

At the beginning, the webpage or should I say the computer language is very hard to understand but after using a program called sublime text which can be downloaded through sublimetext.com. Sublime text is amazing where all the code of any site can be edited or you can build your own site through different code. As a beginner, it would easier to build my personal site by having commercial template by downloading it from free-Css.com that can be customized by using sublime text and the inspect button (ctrl+ahift+I) to know which codes can be edited.

 

Videoing my experience of my site.





Secure Shell (SSH)

 


Secure Shell is a network for operating network services securely over unsecured network. The best known example application is for remote login to computer systems by users.

SSH provides a secure channel over an unsecured network in client server architecture, connecting an SSH client application with an SSH server. Common applications include remote login and remote command execution, but any network service can be secured with SSH. The most visible application of the protocol is for access to an account on Unix like operating systems, but it sees some limited use on Windows as well.

Connecting through SSH:

First SSH need a client like MAC, Windows or Uni-like operating system. Using certain tools for connecting like in linux ssh_remote to connect in domain or Ip –address while for windows "putty"(network for file transfer) might be needed for SSH. This command assume your connecting to your remote username as in your computer system.

Uploading Files

By using FTP (File Transfer Protocol) for uploading files to a server through a password sent over in a clear text, unencrypted. By default, FTP is insecure thus using SSH which encrypts and secures the entire connection.

GIT

 

Git is a version control systems Version Control Systems (VCS) ] and sometimes are called SCM (Source Code Management) tools or RCS (Revision Control System) which are a category of software tools that help a software team manages, changes and track the source. Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members. Most software teams, the source code is a repository of the invaluable knowledge and understanding about the problem domain that the developers have collected and refined through careful effort. Version control protects source code (most valuable asset in a software) from both catastrophe and the casual degradation of human error and unintended consequences.

Software developers working in teams are continually writing new source code and changing existing source code. The code for a project, app or software component is typically organized in a folder structure or "file tree". One developer on the team may be working on a new feature while another developer fixes an unrelated bug by changing code, each developer may make their changes in several parts of the file tree.

Version control helps teams solve these kinds of problems, tracking every individual change by each contributor and helping prevent concurrent work from conflicting. Changes made in one part of the software can be incompatible with those made by another developer working at the same time. This problem should be discovered and solved in an orderly manner without blocking the work of the rest of the team. Software teams that do not use any form of version control often run into problems like not knowing which changes that have been made are available to users or the creation of incompatible changes between two unrelated pieces of work that must then be painstakingly untangled and reworked. If you're a developer who has never used version control you may have added versions to your files, perhaps with suffixes like "final" or "latest" and then had to later deal with a new final version. Perhaps you've commented out code blocks because you want to disable certain functionality without deleting the code, fearing that there may be a use for it later. Version control is a way out of these problems.

Developing software without using version control is risky, like not having backups. Version control can also enable developers to move faster and it allows software teams to preserve efficiency and agility as the team scales to include more developers.

The primary benefits GIT are as follows.

 

  1. 1.A complete long-term change history of every file.  

  2. 2.Branching and merging.  

  3. 3.Different workflows that teams can choose from when they decide how to make use of branching and merging facilities in VCS.  

  4. 4.Traceability  

  1. 5.a message describing the purpose and intent of the change can help not only with root cause  

 

GitHub

GitHub is a web-based Git and Git is for tracking changes in the computer files and coordinating the files among multiple people. GitHub offers all of the distributed version control and source code management(SCM) functionality of Git as well as adding its own features. It provides access control and several collaboration features such as bug tracking, feature request,task management, and works for every project.

GitHub is mostly used for code and support different formats which are the following:

GitLab

GitLab is a web-based GIT For managing with wikis andissue tracking features, using an open source license.

Setting up the Git!


Today I tried to create an account in git lab through http://git.fabacademy.org and sign up by adding a username and password. After that I installed git by using the ‘Git" terminal so that my file would be connected with fabacademy server by the below commands:

or
sudo apt-get install git

 

I faced some difficuties in the installation ater the
update where it failing to identify the index file. The way to resolve the issue is by going to http://askubuntu.com/questions/734724/unable-to-install-git-on-ubuntu-14-10 and add the following command sudo apt-get update install build-essential libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip.

Then by updating Git, I needed generate a SSH keys by the following commands:

Then it will ask us about the location of the keys and I did it through the following:

 

Note: it will be asking us for a pass phrase or a password.

 

After finishing, I needed to Add an SSH agent through the following commands:

 

And I needed to add global username and global email id:

 


After that, I have to connect to git.fabacademy through adding my public key to gitlab account with the followign command code sudo gedit ~/.ssh/id_rsa.pub and then copying it in git.fabacademy.org by going my profile in setting (SSH Keys) and paste it there.

 


After were done from the SSH keys, I cloned the repository by going to terminal and change the directory wherever I want by writing down the following command:

Basic git workflow

 

open the terminal in our repository then type pull other students changes

  git pul

add your changes

  git add --all            

for understanting changes

  git commit -m "message"

for the uploading process

  git push  

we should keep the steps when we start to uploading files

 

Final Project:

 

Project Concept:

 

The idea of my final project came is inspired from last trip to my honey moon where I had to travel through many different airlines and deal with many  luggage policies . As you have noticed in the market, the luggage scales can be tiresome and can cause stress to your back especially when you are trying to weight more than a luggage to avoid the airline additional weight fee which can be so costly.

I called it “BAGO” as a bag to go and ready made for traveling and also to ease your packing and carrying without the stress of exceeding the weight limit imposed by the airlines.

 

Sketch: